#include "UdpServer.hpp"
#include "Comm.hpp"
#include <memory>
#include <string>
#include <vector>

// 使用手册
void Usage(std::string proc)
{
    std::cout << "Usage : \n\t" << proc << " local_port\n" << std::endl;
}

// ./udp_server 8888
int main(int argc, char *argv[])
{
    if(argc != 2)
    {
        Usage(argv[0]);
        return Usage_Err;
    }

    // std::string ip = argv[1];               // 拿到字符串风格的ip地址
    uint16_t port = std::stoi(argv[1]);     // 拿到2字节整数风格的端口号

    // std::unique_ptr<UdpServer> usvr = std::unique_ptr<UdpServer>(new UdpServer(OnMessadeDefault, port));
    // std::unique_ptr<UdpServer> usvr = std::unique_ptr<UdpServer>(new UdpServer(ExecuteCommand, port));
    std::unique_ptr<UdpServer> usvr = std::unique_ptr<UdpServer>(new UdpServer(port));
    
    usvr->Init();       // 初始化服务器
    usvr->Start();      // 启动服务器

    return 0;
}